package com.navi.loaddata.core.gpEntity;

import com.alibaba.fastjson.annotation.JSONField;
import com.navi.loaddata.core.entity.BaseEntity;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Objects;

@Entity
@Table(name = "wpp_sht_info", schema = "sor", catalog = "qmstst")
public class WppShtInfo extends BaseEntity{
    private String panelId;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp evtTimestamp;
    private String tftGlassId;
    private String cfGlassId;
    private String sn;
    private String lotId;
    private String groupId;
    private String tftProdId;
    private String cfProdId;
    private String pfcd;
    private String owner;
    private String tftPnlGrade;
    private String cfPnlGrade;
    private String ocPnlGrade;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp tftStartTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp tftShippingTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp cfStartTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp cfShippingTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp ocStartTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp ocShippingTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp etlTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp dbTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp mesTimestamp;
    private String ext1;
    private String ext2;
    private String ext3;
    private String ext4;
    private String ext5;
    private String ext6;
    private String ext7;
    private String ext8;
    private String ext9;
    private String ext10;

    @Id
    @Column(name = "panel_id")
    public String getPanelId() {
        return panelId;
    }

    public void setPanelId(String panelId) {
        this.panelId = panelId;
    }

    @Basic
    @Column(name = "mes_timestamp")
    public Timestamp getMesTimestamp() {
        return mesTimestamp;
    }

    public void setMesTimestamp(Timestamp mesTimestamp) {
        this.mesTimestamp = mesTimestamp;
    }

    @Basic
    @Column(name = "evt_timestamp")
    public Timestamp getEvtTimestamp() {
        return evtTimestamp;
    }

    public void setEvtTimestamp(Timestamp evtTimestamp) {
        this.evtTimestamp = evtTimestamp;
    }

    @Basic
    @Column(name = "tft_glass_id")
    public String getTftGlassId() {
        return tftGlassId;
    }

    public void setTftGlassId(String tftGlassId) {
        this.tftGlassId = tftGlassId;
    }

    @Basic
    @Column(name = "cf_glass_id")
    public String getCfGlassId() {
        return cfGlassId;
    }

    public void setCfGlassId(String cfGlassId) {
        this.cfGlassId = cfGlassId;
    }

    @Basic
    @Column(name = "sn")
    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    @Basic
    @Column(name = "lot_id")
    public String getLotId() {
        return lotId;
    }

    public void setLotId(String lotId) {
        this.lotId = lotId;
    }

    @Basic
    @Column(name = "group_id")
    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }

    @Basic
    @Column(name = "tft_prod_id")
    public String getTftProdId() {
        return tftProdId;
    }

    public void setTftProdId(String tftProdId) {
        this.tftProdId = tftProdId;
    }

    @Basic
    @Column(name = "cf_prod_id")
    public String getCfProdId() {
        return cfProdId;
    }

    public void setCfProdId(String cfProdId) {
        this.cfProdId = cfProdId;
    }

    @Basic
    @Column(name = "pfcd")
    public String getPfcd() {
        return pfcd;
    }

    public void setPfcd(String pfcd) {
        this.pfcd = pfcd;
    }

    @Basic
    @Column(name = "owner")
    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    @Basic
    @Column(name = "tft_pnl_grade")
    public String getTftPnlGrade() {
        return tftPnlGrade;
    }

    public void setTftPnlGrade(String tftPnlGrade) {
        this.tftPnlGrade = tftPnlGrade;
    }

    @Basic
    @Column(name = "cf_pnl_grade")
    public String getCfPnlGrade() {
        return cfPnlGrade;
    }

    public void setCfPnlGrade(String cfPnlGrade) {
        this.cfPnlGrade = cfPnlGrade;
    }

    @Basic
    @Column(name = "oc_pnl_grade")
    public String getOcPnlGrade() {
        return ocPnlGrade;
    }

    public void setOcPnlGrade(String ocPnlGrade) {
        this.ocPnlGrade = ocPnlGrade;
    }

    @Basic
    @Column(name = "tft_start_timestamp")
    public Timestamp getTftStartTimestamp() {
        return tftStartTimestamp;
    }

    public void setTftStartTimestamp(Timestamp tftStartTimestamp) {
        this.tftStartTimestamp = tftStartTimestamp;
    }

    @Basic
    @Column(name = "tft_shipping_timestamp")
    public Timestamp getTftShippingTimestamp() {
        return tftShippingTimestamp;
    }

    public void setTftShippingTimestamp(Timestamp tftShippingTimestamp) {
        this.tftShippingTimestamp = tftShippingTimestamp;
    }

    @Basic
    @Column(name = "cf_start_timestamp")
    public Timestamp getCfStartTimestamp() {
        return cfStartTimestamp;
    }

    public void setCfStartTimestamp(Timestamp cfStartTimestamp) {
        this.cfStartTimestamp = cfStartTimestamp;
    }

    @Basic
    @Column(name = "cf_shipping_timestamp")
    public Timestamp getCfShippingTimestamp() {
        return cfShippingTimestamp;
    }

    public void setCfShippingTimestamp(Timestamp cfShippingTimestamp) {
        this.cfShippingTimestamp = cfShippingTimestamp;
    }

    @Basic
    @Column(name = "oc_start_timestamp")
    public Timestamp getOcStartTimestamp() {
        return ocStartTimestamp;
    }

    public void setOcStartTimestamp(Timestamp ocStartTimestamp) {
        this.ocStartTimestamp = ocStartTimestamp;
    }

    @Basic
    @Column(name = "oc_shipping_timestamp")
    public Timestamp getOcShippingTimestamp() {
        return ocShippingTimestamp;
    }

    public void setOcShippingTimestamp(Timestamp ocShippingTimestamp) {
        this.ocShippingTimestamp = ocShippingTimestamp;
    }

    @Basic
    @Column(name = "etl_timestamp")
    public Timestamp getEtlTimestamp() {
        return etlTimestamp;
    }

    public void setEtlTimestamp(Timestamp etlTimestamp) {
        this.etlTimestamp = etlTimestamp;
    }

    @Basic
    @Column(name = "db_timestamp")
    public Timestamp getDbTimestamp() {
        return dbTimestamp;
    }

    public void setDbTimestamp(Timestamp dbTimestamp) {
        this.dbTimestamp = dbTimestamp;
    }

    @Basic
    @Column(name = "ext_1")
    public String getExt1() {
        return ext1;
    }

    public void setExt1(String ext1) {
        this.ext1 = ext1;
    }

    @Basic
    @Column(name = "ext_2")
    public String getExt2() {
        return ext2;
    }

    public void setExt2(String ext2) {
        this.ext2 = ext2;
    }

    @Basic
    @Column(name = "ext_3")
    public String getExt3() {
        return ext3;
    }

    public void setExt3(String ext3) {
        this.ext3 = ext3;
    }

    @Basic
    @Column(name = "ext_4")
    public String getExt4() {
        return ext4;
    }

    public void setExt4(String ext4) {
        this.ext4 = ext4;
    }

    @Basic
    @Column(name = "ext_5")
    public String getExt5() {
        return ext5;
    }

    public void setExt5(String ext5) {
        this.ext5 = ext5;
    }

    @Basic
    @Column(name = "ext_6")
    public String getExt6() {
        return ext6;
    }

    public void setExt6(String ext6) {
        this.ext6 = ext6;
    }

    @Basic
    @Column(name = "ext_7")
    public String getExt7() {
        return ext7;
    }

    public void setExt7(String ext7) {
        this.ext7 = ext7;
    }

    @Basic
    @Column(name = "ext_8")
    public String getExt8() {
        return ext8;
    }

    public void setExt8(String ext8) {
        this.ext8 = ext8;
    }

    @Basic
    @Column(name = "ext_9")
    public String getExt9() {
        return ext9;
    }

    public void setExt9(String ext9) {
        this.ext9 = ext9;
    }

    @Basic
    @Column(name = "ext_10")
    public String getExt10() {
        return ext10;
    }

    public void setExt10(String ext10) {
        this.ext10 = ext10;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        WppShtInfo that = (WppShtInfo) o;
        return Objects.equals(panelId, that.panelId) &&
                Objects.equals(evtTimestamp, that.evtTimestamp) &&
                Objects.equals(tftGlassId, that.tftGlassId) &&
                Objects.equals(cfGlassId, that.cfGlassId) &&
                Objects.equals(sn, that.sn) &&
                Objects.equals(lotId, that.lotId) &&
                Objects.equals(groupId, that.groupId) &&
                Objects.equals(tftProdId, that.tftProdId) &&
                Objects.equals(cfProdId, that.cfProdId) &&
                Objects.equals(pfcd, that.pfcd) &&
                Objects.equals(owner, that.owner) &&
                Objects.equals(tftPnlGrade, that.tftPnlGrade) &&
                Objects.equals(cfPnlGrade, that.cfPnlGrade) &&
                Objects.equals(ocPnlGrade, that.ocPnlGrade) &&
                Objects.equals(tftStartTimestamp, that.tftStartTimestamp) &&
                Objects.equals(tftShippingTimestamp, that.tftShippingTimestamp) &&
                Objects.equals(cfStartTimestamp, that.cfStartTimestamp) &&
                Objects.equals(cfShippingTimestamp, that.cfShippingTimestamp) &&
                Objects.equals(ocStartTimestamp, that.ocStartTimestamp) &&
                Objects.equals(ocShippingTimestamp, that.ocShippingTimestamp) &&
                Objects.equals(etlTimestamp, that.etlTimestamp) &&
                Objects.equals(dbTimestamp, that.dbTimestamp) &&
                Objects.equals(ext1, that.ext1) &&
                Objects.equals(ext2, that.ext2) &&
                Objects.equals(ext3, that.ext3) &&
                Objects.equals(ext4, that.ext4) &&
                Objects.equals(ext5, that.ext5) &&
                Objects.equals(ext6, that.ext6) &&
                Objects.equals(ext7, that.ext7) &&
                Objects.equals(ext8, that.ext8) &&
                Objects.equals(ext9, that.ext9) &&
                Objects.equals(ext10, that.ext10);
    }

    @Override
    public int hashCode() {

        return Objects.hash(panelId, evtTimestamp, tftGlassId, cfGlassId, sn, lotId, groupId, tftProdId, cfProdId, pfcd, owner, tftPnlGrade, cfPnlGrade, ocPnlGrade, tftStartTimestamp, tftShippingTimestamp, cfStartTimestamp, cfShippingTimestamp, ocStartTimestamp, ocShippingTimestamp, etlTimestamp, dbTimestamp, ext1, ext2, ext3, ext4, ext5, ext6, ext7, ext8, ext9, ext10);
    }
}
